import request from '@/service/index'

/**
 * 印章记录API服务，封装与印章相关的后端接口调用
 */
export const sealService = {
  /**
   * 分页查询印章记录
   * @param {Object} params - 查询参数，包含分页、筛选条件等，如 { page: 1, pageSize: 10, sealType: 'official' }
   * @returns {Promise} - 返回包含印章记录列表及分页信息的Promise
   */
  getSealRecordsByPage(params) {
    return request({
      url: '/seal-records/list',
      method: 'get',
      params
    })
  },

  /**
   * 根据ID获取印章记录详情
   * @param {number} id - 印章记录的唯一标识ID
   * @returns {Promise} - 返回对应ID的印章记录详情Promise
   */
  getSealRecordById(id) {
    return request({
      url: `/seal-records/${id}`,
      method: 'get'
    })
  },

  /**
   * 新增印章记录
   * @param {Object} data - 要新增的印章记录数据，如 { date: '2025-08-28', reason: '合同签订', ... }
   * @param {string} operator - 操作人（经办人）姓名
   * @returns {Promise} - 返回新增操作结果的Promise
   */
  addSealRecord(data, operator) {
    return request({
      url: '/seal-records',
      method: 'post',
      data,
      params: { operator }
    })
  },

  /**
   * 更新印章记录
   * @param {number} id - 要更新的印章记录ID
   * @param {Object} data - 包含更新内容的数据对象
   * @param {string} operator - 操作人（经办人）姓名
   * @returns {Promise} - 返回更新操作结果的Promise
   */
  updateSealRecord(id, data, operator) {
    return request({
      url: `/seal-records/${id}`,
      method: 'put',
      data,
      params: { operator }
    })
  },

  /**
   * 删除印章记录
   * @param {number} id - 要删除的印章记录ID
   * @returns {Promise} - 返回删除操作结果的Promise
   */
  deleteSealRecord(id) {
    return request({
      url: `/seal-records/${id}`,
      method: 'delete'
    })
  },

  /**
   * 导出印章记录为Excel文件
   * @param {Object} params - 查询参数，用于筛选要导出的记录，如 { sealType: 'official', handler: '张三' }
   * @returns {Promise} - 返回包含Excel文件二进制流的Promise
   */
  exportExcel(params) {
    return request({
      url: '/seal-records/export',
      method: 'get',
      responseType: 'blob',
      params
    })
  }
}
